use std::{env, error::Error, path::Path};

use cbindgen::Config;

fn main() -> Result<(), Box<dyn Error>> {
    let crate_dir = env::var("CARGO_MANIFEST_DIR")?;
    let conf_file = Path::new(&crate_dir).join("cbindgen.toml");

    cbindgen::Builder::new()
        .with_crate(&crate_dir)
        .with_config(Config::from_file(conf_file)?)
        .generate()?
        .write_to_file(
            Path::new(
                env::var("CS2S_CCAPI_HEADER_DIR")
                    .as_ref()
                    .unwrap_or(&crate_dir),
            )
            .join("cs2s-ccapi.h"),
        );

    Ok(())
}
